#pragma once
#include "DXAMLCommon.h"
#include "IPALUri.h"
#include "IThreadMonitor.h"
#include "IPALResourceProvider.h"
#include "CReferenceCount.h"



class CommonResourceProvider :
	public IPALResourceProvider,
	public CReferenceCount
{

public: 
	static HRESULT Create(CommonResourceProvider * * ppResourceProvider);
	virtual ~CommonResourceProvider();
	virtual XUINT32 AddRef();
	virtual XUINT32 Release();
	virtual HRESULT TryGetFilePath(const struct IPALUri * pUri, CXString * * ppFilePath);
	virtual HRESULT GetString(const CXString & key, CXString * * ppString);
	virtual HRESULT GetPropertyBag(const struct IPALUri * pUri, xpairlist<xshared_ptr<CXString>,xshared_ptr<CXString> > * * ppPropertyBag);
private: 
	CommonResourceProvider();
	struct IPALUri * m_pBaseUri;
};


